﻿/*
Commerce by Onex – eCommerce software platform (www.ecommerce.byonex.com)
Copyright (C) 2008-2010 by Onex Group

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 */
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Security;

namespace ShopModel
{
    /// <summary>
    /// Klasa przechowująca informacje o uzytkownikach sklepu.
    /// (Class stores information about store users.)
    /// </summary>
    public class ShopUser : MembershipUser
    {
        #region Variables

        private Customer customer;
        private string[] roles;

        #endregion Variables

        public ShopUser()
            : base()
        {
            customer = null;
            roles = null;
        }

        public ShopUser(string providerName, string name, Guid userKey, string email, string question, string comment, bool isApproved, bool isLockedOut,
            DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangeDate, DateTime lastLockoutDate, Customer customer)
            : base(providerName, name, userKey, email, question, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangeDate, lastLockoutDate)
        {
            this.customer = customer;
            roles = new string[0];
        }

        public ShopUser(MembershipUser user)
            : base(user.ProviderName, user.UserName, user.ProviderUserKey, user.Email, user.PasswordQuestion, user.Comment, user.IsApproved, user.IsLockedOut, user.CreationDate,
            user.LastLoginDate, user.LastActivityDate, user.LastPasswordChangedDate, user.LastLockoutDate)
        {
            this.customer = null;
        }

        #region Fields

        public Customer Customer
        {
            get
            {
                return customer;
            }

            set
            {
                customer = value;
            }
        }

        public string[] Roles
        {
            get
            {
                return roles;
            }

            set
            {
                roles = value;
            }
        }

        #endregion Fields
    }
}
